package com.lagou.homework;

import java.util.Objects;

/*
* (1)定义一个Worker类型(属性私有、空参有参构造、set、get方法、toString方法、
* equals方法、hashCode方法)，包含三个属性：姓名(String name)、年龄(int age)、
* 工资(double salary),在Worker类中定义work方法打印一句话，
* 如："凤姐 正在工作"，其中"凤姐"代表当前对象的姓名

 (2)定义List集合，在List集合中增加三个员工，基本信息如下：

 "凤姐" 18 20000

 "欧阳峰" 60 8000

 "刘德华" 40 30000
 *
 (4)在"欧阳峰"之前插入一个员工，信息为：姓名："张柏芝"，年龄：35，工资3300

 (5)删除"刘德华"的信息

 (6)利用for 循环遍历，打印List 中所有员工的信息

 (7)利用迭代遍历，对List 中所有的员工调用work 方法

 (8)为Worker类重写equals 方法，当姓名、年龄、工资全部相等时候才返回true
 *
 * */
public class Worker {
    //属性私有
    private String name;	//姓名
    private int age;		//年龄
    private double salary;	//工资
    //无参构造
    public Worker() {

    }
    // 有参构造
    public Worker(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }
    // 标准的set get方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    //重写hashCode方法
    @Override
    public int hashCode() {
        return Objects.hash(name, age, salary);
    }




//重写equals方法 重写equals 方法，当姓名、年龄、工资全部相等时候才返回true

     @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            Worker other = (Worker) obj;
            if (age != other.age)
                return false;
            if (name == null) {
                if (other.name != null)
                    return false;
            } else if (!name.equals(other.name))
                return false;
            if (Double.doubleToLongBits(salary) != Double
                    .doubleToLongBits(other.salary))
                return false;
            return true;
        }
    //在Worker类中定义work方法
    public void work() {
        System.out.println("员工：" + name + " 正在工作");
    }
    //重写toString方法


    @Override
    public String toString() {
        return "Worker{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                '}';
    }
}

